package cn.tedu.csmall.product.mapper;

import cn.tedu.csmall.product.pojo.entity.Category;
import cn.tedu.csmall.product.pojo.vo.CategoryListitemVO;
import cn.tedu.csmall.product.pojo.vo.CategoryStandardVO;
import org.springframework.stereotype.Repository;
import java.util.List;

/**
 * 类别数据的mapper接口
 *
 * @outhor java@tedu.cn
 * @version 0.0.1
 */
@Repository
public interface CategoryMapper{

    /**
     * 插入类别数据
     * @param category
     * @return
     */
    int insert(Category category);
    /**
     * 批量掺入
     * @param list
     * @return
     */
    int inserts(List<Category> list);
    /**
     * 根据id删除插入类别数据
     * @param id
     * @return
     */
    int deleteById(Long id);
    /**
     * 根据id数组删除类别数据
     * @param id
     * @return
     */
    int deleteByIds(Long [] id);
    /**
     * 修改类别数据信息
     * @return
     */
    int update(Category category);
    /**
     *统计类别数据总数
     * @return id
     */
    int count();
    /**
     *根据id统计类别数据总数
     * @return id
     */
    int countById(Long id);
    /**
     * 根据父类id统计类别数量
     * @param parentId
     * @return
     */
    int countByParentId(Long parentId);
    /**
     * 根据父类id查询数据
     * @param parentId
     * @return
     */
    CategoryStandardVO getStandardById(Long parentId);
    /**
     *根据id查找类类信息
     * @param id
     * @return
     */
    CategoryStandardVO getCategory(Long id);
    /**
     * 更具名字查找数据
     * @param name
     * @return
     */
    int countByName(String  name);
    /**
     * 查询培类别信息排序(降序)
     * @return
     */
    List<CategoryListitemVO>list();
    /**
     * 更具parentId 查询数据
     * @param parentId
     * @return CategoryListitemVO
     */
    List<CategoryListitemVO>listCategory(Long parentId);
}
